// src/utils/file.ts

/**
 * 把单个 File 对象读取为文本
 * @param file  通过 <input type="file"> 得到的 File 实例
 * @returns     文件 UTF-8 文本内容
 */
export function readFileAsText(file: File): Promise<string> {
  return new Promise((resolve, reject) => {
    // 安全性校验
    if (!file) {
      reject(new Error('No file provided'))
      return
    }

    const reader = new FileReader()

    // 成功回调
    reader.onload = (e) => {
      const text = e.target?.result
      if (typeof text === 'string') {
        resolve(text)
      } else {
        reject(new Error('Failed to read file as text'))
      }
    }

    // 失败回调
    reader.onerror = () => {
      reject(new Error(`File read error: ${reader.error?.message || 'Unknown'}`))
    }

    // 以 UTF-8 文本方式读取
    reader.readAsText(file, 'utf-8')
  })
}
